<?php

class FrmLoginWf extends TPage {
//<editor-fold  desc="Eventos Controles">
  const JSON_REDIRECT = "jsonRedirect";

  public function onLoad($param) {
    parent::onLoad($param);

    if (!$this->IsPostBack) {
      //escribe donde se esta ejecutando el sitio
      $ambienteEjecucion = Utilidades::obtenerAmbienteEjecucion();
      if (strpos($ambienteEjecucion, strtoupper(Utilidades::AMBIENTE_EJECUCION_PRODUCCION)) === false) {
        $this->lblAmbienteEjecucion->Text = ".:: SITIO " . $ambienteEjecucion . "&nbsp;(" . strtoupper(Utilidades::pais()) . ") ::.";
      }

      //agrega atributo al boton
      $this->btnIngresar->Attributes->Add("onclick", "return(validarFormulario())");
    }

    $empresa = Utilidades::desencriptarUrl($this->Request["a"], "empresa");
    $url = Utilidades::desencriptarUrl($this->Request["a"], "url");
    $url = stripcslashes($url);
    $url = Utilidades::encriptarNumero($url, Utilidades::NUMERO_DESENCRIPTAR);
    $this->setViewState("JSONRedirect", $url);
    $empresa = (Utilidades::isNull($empresa, "default"));
    $this->Page->ClientScript->registerEndScript("windowOnLoad", "cargarContenidoLogin('".$empresa."');");
    $this->txtEmpresa->Value = $empresa;
	
  }

  public function btnIngresarClick($sender, $param) {
    try {
      $oUsuarioWf = new UsuarioWf();
      $oUsuarioWf->setUsername($this->txtUsername->Text);
      $oUsuarioWf->setPassword(md5($this->txtPassword->Text));

      //verifica si el usuario existe
      $oUsuarioWf = $oUsuarioWf->loginWf();

      //si el usuario existe entonces redirecciona a la pagina de inicio
      if (!Utilidades::isNullOrEmpty($oUsuarioWf)) {
        //graba objetos en session
        Utilidades::inicializarSesion($oUsuarioWf);
        //obtiene valores de la session
        $session = new THttpSession;
        //obtiene la matriz de permisos asociadas al usuario y lo guarda en sesion
        $arrPermisos = Usuario::obtenerMatrizPermisos($oUsuarioWf->getId(), $oUsuarioWf->getEsSuper());
        $session[Usuario::SESION_MATRIZ_PERMISO] = $arrPermisos;

        $empresa = $this->txtEmpresa->Value;
        if ($empresa != "default") {
          $this->seleccionarEmpresa($empresa);
        }

        //escribe en el log
        Sistema::escribirLog("Usuario logueado: " . $oUsuarioWf->getNombreCompleto() . " / username: " . $oUsuarioWf->getUsername() . " / perfil: " . $oUsuarioWf->getPerfilNombre(), Utilidades::obtenerAmbienteEjecucion(), KLogger::INFO);

        //redirecciona a la pagina de inicio definida por defecto
        $url = $this->getViewState("JSONRedirect");
        if(!Utilidades::isNullOrEmpty($url)){
          $queryString = Utilidades::obtenerQueryStringRedirect($url);
          if(!Utilidades::isNullOrEmpty($queryString)){
            $this->Response->redirect("index.php?".$queryString);
          } else {
            $this->Response->redirect($this->Service->constructUrl("Workflow.Home"));
          }
        } else {
          $this->Response->redirect($this->Service->constructUrl("Workflow.Home"));
        }
      } else {
        $this->pnlMensajeError->Visible = true;
        $this->lblMensaje->Text = "Entrada no v&aacute;lida";
      }
    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

  /**
   * verifica si existe la empresa y si es asi entonces la deja activa
   * @param <type> $url
   */
  private function seleccionarEmpresa($url) {
    try {
      $idEmpresa = WfEmpresa::obtenerIdPorUrl($url);
      if ($idEmpresa != "-1"){
        Utilidades::seleccionarEmpresaActiva($idEmpresa);
      }
    } catch (Exception $e) {
      //no hac nada
    }
  }


//</editor-fold>
}

?>